package main

import (
	"bufio"
	"fmt"
	"github.com/gorilla/websocket"
	"log"
	"os"
)

func main() {
	fmt.Println("欢迎您,client01...!")
	u := "ws://127.0.0.1:9999/api/ws/test"
	// log.Printf("connecting to %s", u)
	// conn, _, err := websocket.DefaultDialer.Dial(u, nil)
	dl := websocket.Dialer{}
	conn, _, err := dl.Dial(u, nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	// 异常关闭
	// defer conn.Close()
	defer func(conn *websocket.Conn) {
		_err := conn.Close()
		if _err != nil {
			fmt.Println(_err)
		}
	}(conn)
	// 发送消息
	go send(conn) // 开启子进程运行,防止阻塞住, 影响下面的读取消息
	fmt.Println("客户端启动...")
	// send(conn)
	// 读取消息
	for {
		messageType, message, err := conn.ReadMessage()
		if err != nil {
			log.Println("read:", err)
			// return
			break
		}
		// log.Printf("客户端收到消息: %s, 消息类型：", message, messageType)
		fmt.Println("客户端收到消息oopp:", string(message), "消息类型：", messageType)
	}
}

func send(conn *websocket.Conn) {
	for {
		reader := bufio.NewReader(os.Stdin)
		l, _, _ := reader.ReadLine()
		conn.WriteMessage(websocket.TextMessage, l)
	}
}
